package cn.com.oceansoft.business.sys.service;


import cn.com.oceansoft.business.base.entity.Pager;
import cn.com.oceansoft.business.base.entity.Query;
import cn.com.oceansoft.business.base.entity.Result;
import cn.com.oceansoft.business.sys.entity.DictItem;

import java.util.List;

/**
 * 系统字典数据库操作映射器
 *
 * @author: chenw
 * @time: 2014/5/26 0026 下午 19:28
 */
public interface ISysDictService {

    /**
     * 根据父id寻找所有子节点
     *
     * @param parentId 父id
     * @return List
     */
    List<DictItem> findByParentId(int parentId);

    /**
     * 查找所有需要自动启动并加载的字典 0 不需要加载  1需要加载
     *
     * @param autoType 加载规则
     * @return List
     */
    List<DictItem> findByAutoType(int autoType);

    /**
     * 分页查询系统字典信息
     *
     * @param query 查询参数
     * @return Pager<DictItem>
     */
    Pager<DictItem> findPageByCondition(Query query, int pid);

    /**
     * 新增系统字典
     *
     * @param dict 字典信息实体类
     * @return Result
     */
    Result save(DictItem dict);

    /**
     * 系统字典信息更新
     *
     * @param dict 字典信息实体类
     * @return Result
     */
    Result update(DictItem dict);

    /**
     * 根据ID加载字典信息
     *
     * @param dictId 字典ID
     * @return SysRole
     */
    DictItem findById(int dictId);

    /**
     * 删除字典
     *
     * @param dictId 字典ID
     * @return 结果
     */
    Result deleteDictItemById(int dictId);

    /**
     * 查找所有字典
     *
     * @return String
     */
    String findAllDictByZtree();
}
